#include <stdio.h>
int main()
{
    printf("请输入螺旋方阵的阶数：\n");
    int size;
    scanf("%d", &size);
    int value = 1;
    int minRow = 0, maxRow = size - 1, minCol = 0, maxCol = size - 1;
    int matrix[10][10];

    while (value <= size * size)
    {
        // 从左到右填充行
        for (int i = minCol; i <= maxCol; i++)
        {
            matrix[minRow][i] = value++;
        }
        minRow++;

        // 从上到下填充列
        for (int i = minRow; i <= maxRow; i++)
        {
            matrix[i][maxCol] = value++;
        }
        maxCol--;

        // 从右到左填充行
        for (int i = maxCol; i >= minCol; i--)
        {
            matrix[maxRow][i] = value++;
        }
        maxRow--;

        // 从下到上填充列
        for (int i = maxRow; i >= minRow; i--)
        {
            matrix[i][minCol] = value++;
        }
        minCol++;
    }
    for (int row = 0; row < size; row++)
    {
        for (int col = 0; col < size; col++)
        {
            printf("%3d ", matrix[row][col]);
        }
        printf("\n");
    }

    return 0;
}